﻿using System;
using System.ComponentModel;

namespace HYElectricDim
{
	public class CableTrenchInfo : ICloneable
	{
		[Category("\t\t\t\t\t沟体")]
		[DisplayName("宽度")]
		[PropertyOrder(0)]
		public int Width
		{
			get
			{
				return this.width;
			}
			set
			{
				this.width = value;
			}
		}

		[Category("\t\t\t\t\t沟体")]
		[DisplayName("深度")]
		[PropertyOrder(1)]
		public int Depth
		{
			get
			{
				return this.depth;
			}
			set
			{
				this.depth = value;
			}
		}

		[Category("\t\t\t\t\t沟体")]
		[DisplayName("墙厚")]
		[PropertyOrder(2)]
		public int WallThick
		{
			get
			{
				return this.wallThick;
			}
			set
			{
				this.wallThick = value;
			}
		}

		[Category("\t\t\t\t\t沟体")]
		[DisplayName("壁厚")]
		[PropertyOrder(3)]
		public int DisThick
		{
			get
			{
				return this.disThick;
			}
			set
			{
				this.disThick = value;
			}
		}

		[TypeConverter(typeof(IfEmbedSteel))]
		[Category("\t\t\t\t\t沟体")]
		[DisplayName("预埋钢筋")]
		[PropertyOrder(4)]
		public string EmbedSteel
		{
			get
			{
				return this.embedSteel;
			}
			set
			{
				this.embedSteel = value;
			}
		}

		[TypeConverter(typeof(IfGroundSteel))]
		[Category("\t\t\t\t\t沟体")]
		[DisplayName("接地扁钢")]
		[PropertyOrder(5)]
		public string GroundSteel
		{
			get
			{
				return this.groundSteel;
			}
			set
			{
				this.groundSteel = value;
			}
		}

		[Category("\t\t\t\t支架")]
		[DisplayName("长度")]
		[PropertyOrder(6)]
		public int Length
		{
			get
			{
				return this.length;
			}
			set
			{
				this.length = value;
			}
		}

		[Category("\t\t\t\t支架")]
		[DisplayName("层数")]
		[PropertyOrder(7)]
		public int FloorNum
		{
			get
			{
				return this.floorNum;
			}
			set
			{
				this.floorNum = value;
			}
		}

		[Category("\t\t\t\t支架")]
		[DisplayName("层间距")]
		[PropertyOrder(8)]
		public int FloorGap
		{
			get
			{
				return this.floorGap;
			}
			set
			{
				this.floorGap = value;
			}
		}

		[Category("\t\t\t\t支架")]
		[DisplayName("顶距")]
		[PropertyOrder(9)]
		public int TopDis
		{
			get
			{
				return this.topDis;
			}
			set
			{
				this.topDis = value;
			}
		}

		[TypeConverter(typeof(LeftRightConverter))]
		[Category("\t\t\t\t支架")]
		[DisplayName("左右支架")]
		[PropertyOrder(10)]
		public string LeftOrRight
		{
			get
			{
				return this.leftOrRight;
			}
			set
			{
				this.leftOrRight = value;
			}
		}

		[TypeConverter(typeof(IfHasBoard))]
		[Category("\t\t\t盖板")]
		[DisplayName("加盖板")]
		[PropertyOrder(11)]
		public string HasBoard
		{
			get
			{
				return this.hasBoard;
			}
			set
			{
				this.hasBoard = value;
			}
		}

		[Category("\t\t\t盖板")]
		[DisplayName("厚度")]
		[PropertyOrder(12)]
		[ReadOnly(false)]
		public int BoardThick
		{
			get
			{
				return this.boardThick;
			}
			set
			{
				this.boardThick = value;
			}
		}

		[Category("\t\t基础")]
		[DisplayName("厚度")]
		[PropertyOrder(13)]
		public int BaseThick
		{
			get
			{
				return this.baseThick;
			}
			set
			{
				this.baseThick = value;
			}
		}

		[Category("\t\t基础")]
		[DisplayName("边距")]
		[PropertyOrder(14)]
		public int EdgeDis
		{
			get
			{
				return this.edgeDis;
			}
			set
			{
				this.edgeDis = value;
			}
		}

		[TypeConverter(typeof(IfHasCableTray))]
		[Category("\t桥架")]
		[DisplayName("带桥架")]
		[PropertyOrder(15)]
		public string HasCableTray
		{
			get
			{
				return this.hasCableTray;
			}
			set
			{
				this.hasCableTray = value;
			}
		}

		[Category("\t桥架")]
		[DisplayName("宽度")]
		[PropertyOrder(16)]
		[ReadOnly(false)]
		public int TrayWidth
		{
			get
			{
				return this.trayWidth;
			}
			set
			{
				this.trayWidth = value;
			}
		}

		[Category("\t桥架")]
		[DisplayName("高度")]
		[PropertyOrder(17)]
		[ReadOnly(false)]
		public int TrayHeight
		{
			get
			{
				return this.trayHeight;
			}
			set
			{
				this.trayHeight = value;
			}
		}

		[TypeConverter(typeof(IfHasLabel))]
		[Category("绘制设定")]
		[DisplayName("带标注")]
		[PropertyOrder(18)]
		public string HasLabel
		{
			get
			{
				return this.hasLabel;
			}
			set
			{
				this.hasLabel = value;
			}
		}

		[Category("绘制设定")]
		[DisplayName("放大系数")]
		[PropertyOrder(19)]
		public double Gain
		{
			get
			{
				return this.gain;
			}
			set
			{
				this.gain = value;
			}
		}

		public object Clone()
		{
			return new CableTrenchInfo
			{
				Width = this.Width,
				Depth = this.Depth,
				WallThick = this.WallThick,
				DisThick = this.DisThick,
				EmbedSteel = this.EmbedSteel,
				GroundSteel = this.GroundSteel,
				Length = this.Length,
				FloorNum = this.FloorNum,
				FloorGap = this.FloorGap,
				TopDis = this.TopDis,
				LeftOrRight = this.leftOrRight,
				HasBoard = this.HasBoard,
				BoardThick = this.BoardThick,
				BaseThick = this.BaseThick,
				EdgeDis = this.EdgeDis,
				HasCableTray = this.HasCableTray,
				TrayWidth = this.TrayWidth,
				TrayHeight = this.TrayHeight,
				HasLabel = this.HasLabel,
				Gain = this.Gain
			};
		}

		protected const string category1 = "\t\t\t\t\t沟体";

		private int width;

		private int depth;

		private int wallThick;

		private int disThick;

		private string embedSteel;

		private string groundSteel;

		protected const string category2 = "\t\t\t\t支架";

		private int length;

		private int floorNum;

		private int floorGap;

		private int topDis;

		private string leftOrRight = "左右";

		protected const string category3 = "\t\t\t盖板";

		private string hasBoard;

		private int boardThick;

		protected const string category4 = "\t\t基础";

		private int baseThick;

		private int edgeDis;

		protected const string category5 = "\t桥架";

		private string hasCableTray;

		private int trayWidth;

		private int trayHeight;

		protected const string category6 = "绘制设定";

		private string hasLabel;

		private double gain;
	}
}
